#ifndef __EVENTNEEDGENERIKSCENTREMOVE_HPP__
#define	__EVENTNEEDGENERIKSCENTREMOVE_HPP__

#include "../EventBase.hpp"

namespace Event
{
    class EventNeedGenerikScentRemove :
    public EventBase
    {
    protected:
        /**
         * @fn       EventNeedGenerikScentRemove(unsigned long _idToRemove, float _timeToWait = 0, int _nbFires = 0))
         * @brief    Contructor
         * @param    _timeToWait     time we have to wait before firing the event
         * @param    _nbFires        number of time we have to fire the event
         */
        EventNeedGenerikScentRemove(int _type, float _posX, float _posZ, int _numToRemove, float _timeToWait = 0, int _nbFires = 0) :
        EventBase(EVENT_NEED_GENERIK_SCENT_REMOVE, _timeToWait, _nbFires),
        m_type(_type),
        m_posX(_posX),
        m_posZ(_posZ),
        m_numToRemove(_numToRemove)
        {
        }
    public:
        /**
         * @fn       EventNeedGenerikScentRemove(void* _sender, unsigned long _idToRemove, float _timeToWait = 0, int _nbFires = 0))
         * @brief    Contructor
         * @param    _timeToWait     time we have to wait before firing the event
         * @param    _nbFires        number of time we have to fire the event
         */
        EventNeedGenerikScentRemove(void* _sender, int _type, float _posX, float _posZ, int _numToRemove, float _timeToWait = 0, int _nbFires = 0) :
        EventBase(_sender, EVENT_NEED_GENERIK_SCENT_REMOVE, _timeToWait, _nbFires),
        m_type(_type),
        m_posX(_posX),
        m_posZ(_posZ),
        m_numToRemove(_numToRemove)
        {
        }

        /**
         * @fn       EventNeedGenerikScentRemove(const EventNeedGenerikScentRemove& orig)
         * @brief    Copy Contructor
         * @param    orig       Copy of the event we have to do
         */
        EventNeedGenerikScentRemove(const EventNeedGenerikScentRemove& orig) :
        EventBase(orig),
        m_type(orig.m_type),
        m_posX(orig.m_posX),
        m_posZ(orig.m_posZ),
        m_numToRemove(orig.m_numToRemove)
        {
        }

        /**
         * @fn       getType()
         * @brief    Getter on the event
         * @return   event of the keyboard
         */
		int getType()
        {
            return m_type;
        }

        /**
         * @fn       getPosX()
         * @brief    Getter on the event
         * @return   event of the keyboard
         */
		float getPosX()
        {
            return m_posX;
        }

        /**
         * @fn       getPosZ()
         * @brief    Getter on the event
         * @return   event of the keyboard
         */
		float getPosZ()
        {
            return m_posZ;
        }

        /**
         * @fn       getNumToRemove()
         * @brief    Getter on the event
         * @return   event of the keyboard
         */
		int getNumToRemove()
        {
            return m_numToRemove;
        }

        /**
         * @fn       ~EventNeedGenerikScentRemove()
         * @brief    Virtual Destructor
         */
        virtual ~EventNeedGenerikScentRemove()
        {
        }
    protected:
        int     m_type;
        float     m_posX;
        float     m_posZ;
        int     m_numToRemove;

    };

} //  namespace Event


#endif	/* __EVENTNEEDGENERIKSCENTREMOVE_HPP__ */

